A variety of protocols are available for the communication of a data message over a communications link. In numerous protocols the message is divided into packets at the transmitter end; the packets are conveyed individually over the communications link; and at the receiver end the packets are combined to re-form the message. Each packet normally comprises a payload, which represents the portion of the message that the packet carries, and control data, which are used in the communication procedure itself. The control data are normally in a contiguous block at the beginning of the packet (a header) but could be at the end of the packet (a trailer) or distributed through it. The functions of the control data can include:    1. indicating the source address of the packet,    2. indicating the destination address of the packet,    3. indicating the location of the payload's data in the message, and    4. providing error check or error correction information for the header, the packet or the message.
One example of a packet protocol is TCP/IP (transmission control protocol/internet protocol). In basic TCP/IP the transmitting unit gives each packet a 40 byte header which contains information for all the functions 1 to 4 above. As the packet passes over the communication link the destination address of the packet is used to route the packet to the receiving unit. At the receiving unit the error check information is used to check that the packet has been received intact; if an error is detected then the transmitting unit is requested to retransmit the packet. Then the receiving unit extracts the payload from each packet and combines the payloads in the order indicated by the location information in their respective headers, to re-form the message.
The basic 40 byte header represents a significant proportion of the bandwidth used for the transmission. To address this high overhead a mechanism [RFCs 1144, 2507, 2508, 2509] for compression of TCP/IP headers has been developed. Using this mechanism the TCP/IP header can be compressed from 40 to a minimum of 4 bytes. TCP/IP header compression [RFC1144] is today widely used in combination with PPP (point-to-point protocol) for dial-up links over modem and other low speed connections.
The header compression mechanism is based on the fact that most of the fields in the TCP and IP headers are constant or change very little during the transmission of a message. For example, the source address and destination address are the same for all the packets of the message. To exploit this the header compression mechanism operates by transmitting the whole header only once, in the first packet of the message, and after that only the parts that have changed. The compression mechanism can be enhanced by not transmitting changes in the header that are obvious for both transmitter and receiver. Similar mechanisms have been proposed for UDP/IP and RTP/UDP/IP.
EP 0 616 455 describes a computer network where messages are sent over the links between the computers in compressed, segmented form, the site of the segments being appropriate to the transmission characteristics of the link.
WO 96/21984 describes a packet radio system which encapsulates data packets of external packet data networks by PPP and passes them through one or more sub-networks to a point which supports the protocol of the encapsulated data packet. A PPP packet is compressed before the encapsulation of a special radio link protocol by removing therefrom the unnecessary control fields.
The TCP/IP header compression mechanism is an effective way to improve bandwidth efficiency for many point to point links, when the link is reliable and there are no errors. However, if the compressed headers are distorted due to errors in the transmission link then significant problems can arise. Because the compression mechanism operates by transmitting only the changes from one header to the next, if one header is received wrongly then that error propagates and affects the receiver's interpretation of succeeding compressed headers, destroying the integrity of those headers' packets. This means that those packets must to be re-transmitted. On a link in which there is a high BER (bit error rate), such as many cellular radio links, the bandwidth used to retransmit packets that have been wrongly received due to header compression can be greater than the bandwidth saved by sending the compressed headers.
There is provision for a gradual increase in the level of TCP/IP header compression on a link over time. Full headers are sent periodically, and the interval between the sending of a full header increases exponentially to an upper limit. (The upper limit exists so that the connection will eventually overcome even an undetected bit error in a compressed header). If an error is detected, using the received data at the TCP/IP protocol level, then the interval is reset to the minimum and then begins to increase again.
Some high BER links run an error-checking retransmission protocol under the TCP/IP protocol to ensure that the TCP/IP protocol receives data intact and free from bit errors. However, the presence of an underlying retransmission protocol cannot be guaranteed—for example, in the proposed standard for the transmission of packet data over third-generation (UMTS) cellular systems the use of a layer 2 retransmission protocol is still uncertain.
There is therefore a need for an improved method of header compression.